home *** CD-ROM | disk | FTP | other *** search
- /********************************************************************
- * *
- * DISKDUP *
- * *
- * オンメモリ型 DISKCOPY *
- * *
- * diskdup.exp *
- * *
- * for FM-TOWNS *
- * *
- * Copyright (c) ちにゃと & Tymic 1992. 1993. *
- * *
- * メイン ヘッダー *
- * *
- ********************************************************************/
-
- typedef unsigned char uchar; /* 無符号 8 bit */
- typedef unsigned short ushort; /* 無符号 16 bit */
- typedef unsigned int uint; /* 無符号 32 bit */
- typedef unsigned long ulong; /* 無符号 32 bit */
-
-
- /********************************************************************
- 定数定義
- *********************************************************************/
-
- #define VER "0.90a" /* バージョン 番号 */
-
- #define OK 0 /* 正常 */
- #define NG -1 /* 異常 */
- #define TRUE 1 /* 真 */
- #define FALSE 0 /* 偽 */
-
- #define MAXHEAD 2 /* ヘッド 番号最大値 */
-
- #define MAXCYL_2HD 77 /* 2HD シリンダ 番号最大値 */
- #define MAXCYL_2HC 80 /* 2HC シリンダ 番号最大値 */
- #define MAXCYL_2DD 80 /* 2DD シリンダ 番号最大値 */
-
- #define MAXSEC_12 8 /* 1.2M 2HD セクタ 番号最大値 */
- #define MAXSEC_720 9 /* 720K 2DD セクタ 番号最大値 */
- #define MAXSEC_640 8 /* 640K 2DD セクタ 番号最大値 */
- #define MAXSEC_12C 15 /* 1.2M 2HC セクタ 番号最大値 */
- #define MAXSEC_1440 18 /* 1.44 2HC セクタ 番号最大値 */
-
- #define SECLEN512 512 /* セクタ レングス 512 */
- #define SECLEN1024 1024 /* セクタ レングス 1024 */
-
- #define MODE1_12 0x0003 /* 1.2M 2HD ドライブ モード 1 */
- #define MODE2_12 0x0208 /* 1.2M 2HD ドライブ モード 2 */
- #define MODE1_720 0x0012 /* 720K 2DD ドライブ モード 1 */
- #define MODE2_720 0x0209 /* 720K 2DD ドライブ モード 2 */
- #define MODE1_640 0x0012 /* 640K 2DD ドライブ モード 1 */
- #define MODE2_640 0x0208 /* 640K 2DD ドライブ モード 2 */
- #define MODE1_12C 0x0002 /* 1.2M 2HC ドライブ モード 1 */
- #define MODE2_12C 0x020F /* 1.2M 2HC ドライブ モード 2 */
- #define MODE1_1440 0x0042 /* 1.44M 2HC ドライブ モード 1 */
- #define MODE2_1440 0x0212 /* 1.44M 2HC ドライブ モード 2 */
-
- #define FD0_DRVNO 0x0020 /* フロッピー デバイス 0 */
- #define FD1_DRVNO 0x0021 /* フロッピー デバイス 1 */
-
- #define DISKSIZE SECLEN1024 * \
- MAXSEC_12 * \
- MAXCYL_2HD * \
- MAXHEAD /* ディスク 読み込み バッファ レングス */
-
- enum _DISKTYPE { /* フロッピー ディスク 種別番号 */
- TYPE_NOT = 0, /* 未対応 ディスク */
- TYPE_2HD_12, /* 1.2M 2HD */
- TYPE_2DD_720, /* 720K 2DD */
- TYPE_2DD_640, /* 640K 2DD */
- TYPE_2HC_12, /* 1.2M 2HC */
- TYPE_END, /* ダミー */
- };
-
- enum _ERRCODE { /* エラー メッセージ 番号 */
- NOERR = 0, /* エラー 無し 正常終了 */
- ERRMODESET, /* モード セット エラー */
- ERRDISKREAD, /* ディスク リード エラー */
- ERRDISKWRITE, /* ディスク ライト エラー */
- ERRDISKSET, /* ディスク 設定 エラー */
- ERRDISKTYPE, /* 未対応 ディスク エラー */
- ERRNOTDISK, /* ドライブ ノット レディー */
- ERRPROTECT, /* 書き込み禁止 */
- ERRFORMAT, /* フォ-マット エラ- */
- };
-
- #define PreAmblLength 146 /* プレ アンブル データ レングス */
- #define PosAmblLength 600 /* ポスト アンブル データ レングス */
- #define SecData1024Length 1200 /* 1024 セクタ データ レングス */
- #define SecData512Length 688 /* 512 セクタ データ レングス */
-
- #define RETRYMAX 7 /* エラー リトライ 回数 */
-
-
- /********************************************************************
- 構造体定義
- *********************************************************************/
-
- typedef struct _FORMPARA { /* フォーマット データ 圧縮形式 */
- int fdata; /* フォーマット データ */
- int cnt; /* 展開 レングス */
- } FORMPARA;
-
- typedef struct _IntParaBlk { /* リアル モード 割り込み発行 パラメータ ブロック */
- ushort intno; /* 割り込み番号 */
- ushort rds; /* リアル モード ds */
- ushort res; /* リアル モード es */
- ushort rfs; /* リアル モード fs */
- ushort rgs; /* リアル モード gs */
- uint reax; /* リアル モード eax */
- uint redx; /* リアル モード edx */
- } IntParaBlk;
-
-
- /********************************************************************
- 外部参照
- *********************************************************************/
-
- #ifndef __PRGMAIN__
- extern char Title1[]; /* タイトル 1 */
- extern char Title2[]; /* タイトル 2 */
- extern char *ErrMsgTbl[]; /* エラー メッセージ テーブル */
- extern int option; /* オプション データ */
- #endif
-
-
- /********************************************************************
- プロトタイプ
- *********************************************************************/
-
- void main( int, char ** ); /* メイン 処理 */
- void PrgExit1( void ); /* プログラム 終了処理 */
- void PrgExit2( void ); /* プログラム 終了処理 */
- void CopyPrgMain( void ); /* コピー プログラム メイン */
- int SetDiskDrvMode( int, int ); /* ドライブ モード 設定 */
- int ReadDiskAll( int, char *, int ); /* ディスク 読み込み */
- int WriteDiskAll( int, char *, int ); /* ディスク 書き込み */
- int TrackFormat( int, int, int ); /* 1 トラック フォーマット */
- void MakeFormData( int, int, int ); /* フォーマット データ 作成 */
- int ChkFormatType( int ); /* フォーマット タイプ チェック */
-
-
- /* end of file */